package com.ynet.middleground.user.bean;

import java.util.List;

import javax.validation.constraints.NotBlank;

import com.ynet.core.common.BaseReqObj;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author liulx
 * @description 更新E签宝企业账户请求对象
 * @date 2019-11-07 19:13
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "更新E签宝企业账户请求对象", description = "更新E签宝企业账户请求对象")
public class UpdateEsignOrganizeReq extends BaseReqObj {

    private static final long serialVersionUID = 6410788710194063146L;

    @ApiModelProperty(value = "账户唯一标志", notes = "账户唯一标志", dataType = "String", required = true)
    @NotBlank(message = "账户唯一标志不能为空")
    private String accountUid;

    @ApiModelProperty(value = "邮箱", notes = "邮箱", dataType = "String")
    private String email;

    @ApiModelProperty(value = "手机号,只有山港易付渠道可上传", notes = "手机号用于接收签署验证码,只有山港易付渠道可上传", dataType = "String")
    private String mobile;

    @ApiModelProperty(value = "住址", notes = "住址", dataType = "String")
    private String address;

    @ApiModelProperty(value = "单位类型\nNomal: 普通企业，\n" + "Sociogroup: 社会团体，\n" + "Institution: 事业单位，\n"
        + "PrivateUnit: 民办非企业单位，\n" + "OrganOfState: 党政及国家机构", notes = "单位类型", dataType = "String")
    private String organType;

    @ApiModelProperty(value = "注册类型\n0:缺省注册无需法人或代理人信息, 1: 代理人注册,2: 法人注册", notes = "注册类型", dataType = "Integer",
        allowableValues = "0, 1, 2")
    private Integer userType;

    @ApiModelProperty(value = "法定代表人姓名，注册类型为2时必填", notes = "法定代表人姓名，当注册类型为2时必填, 即为法人注册是必填", dataType = "String")
    private String legalName;

    @ApiModelProperty(value = "法定代表人身份证号/护照号，当注册类型为2时必填", notes = "当注册类型为2时必填, 即为法人注册是必填", dataType = "String")
    private String legalIdNo;

    @ApiModelProperty(value = "法定代表人归属地\n0: 大陆，1: 香港，2: 澳门，3: 台湾，4: 外籍", notes = "法定代表人归属地", dataType = "Integer",
        allowableValues = "0, 1, 2, 3, 4")
    private Integer legalArea;

    @ApiModelProperty(value = "代理人姓名，当注册类型为1时必填, ", notes = "代理人姓名，当注册类型为1时必填, 即为代理人注册是必填", dataType = "String")
    private String agentName;

    @ApiModelProperty(value = "代理人身份证号，当注册类型为1时必填", notes = "当注册类型为1时必填, 即为代理人注册是必填", dataType = "String")
    private String agentIdNo;

    @ApiModelProperty(value = "经营范围", notes = "经营范围", dataType = "String")
    private String scope;

    @ApiModelProperty(value = "企业名称", notes = "企业名称", dataType = "String")
    private String name;

    @ApiModelProperty(
        value = "待置空的属性集合\nEMAIL: 邮箱地址,\n" + "ORGAM: 个人所属公司,\n" + "TITLE: 个人职位,\n" + "ADDRESS: 个人常用地址,\n"
            + "LEGALIDNO: 企业法定代表身份证号/护照号,\n" + "LEGALNAME: 企业法定代表姓名,\n" + "AGENTIDNO: 企业代理人身份证号,\n"
            + "AGENGTNAME: 企业代理人姓名,\n" + "ORGANADDRESS: 公司地址,\n" + "SCOPE: 经营范围",
        notes = "待置空的属性集合", dataType = "java.util.List", example = "ORGANADDRESS, SCOPE")
    List<String> deleteParamTypes;

}
